﻿// -------------------------------------------------------------------------
//    @FileName         :    NFServerTypeDefine.h
//    @Author           :    Gao.Yi
//    @Date             :    2025-08-17
//    @Email			:    445267987@qq.com
//    @Module           :    NFServerTypeDefine
//    @Desc             :    
//
// -------------------------------------------------------------------------

#pragma once

#include "NFComm/NFObjCommon/NFTypeDefines.h"

typedef enum
{
	EOT_SF_BEGIN_ID = EOT_SERVER_FRAME_BEGIN_ID,

    /**
     * @brief 基础数据库对象类型
     * @details 基础数据库对象的类型ID
     */
    EOT_BASE_DB_OBJ,

    /**
     * @brief 事务数据库对象类型
     * @details 事务处理中的数据库对象类型ID
     */
    EOT_TRANS_DB_OBJ,

    /**
     * @brief 事务数据库对象管理器类型
     * @details 事务数据库对象管理器的类型ID
     */
    EOT_TRANS_DB_OBJ_MGR,

    /**
     * @brief RPC事务ID类型
     * @details RPC调用中的事务标识对象类型ID
     */
    EOT_RPC_TRANS_ID,

    /**
     * @brief 服务器同步数据对象类型
     * @details 服务器间数据同步对象的类型ID
     */
    EOT_SERVER_SYNC_DATA_OBJ,

    /**
     * @brief 服务器同步数据对象管理器类型
     * @details 服务器同步数据对象管理器的类型ID
     */
    EOT_SERVER_SYNC_DATA_OBJ_MGR,

    /**
     * @brief 事务服务器同步数据对象类型
     * @details 事务处理中的服务器同步数据对象类型ID
     */
    EOT_TRANS_SERVER_SYNC_DATA_OBJ,

    /**
     * @brief 缓存数据对象类型
     * @details 缓存数据对象的类型ID
     */
    EOT_CACHE_DATA_OBJ,

    /**
     * @brief 传输缓存数据加载对象类型
     * @details 用于标识事务处理中的缓存数据加载对象类型ID。
     */
    EOT_CACHE_DATA_LOAD_TRANS_OBJ,

    /**
     * @brief 传输缓存数据插入对象类型
     * @details 用于标识事务处理中的缓存数据插入对象类型ID。
     */
    EOT_CACHE_DATA_INSERT_TRANS_OBJ,

    /**
     * @brief 传输缓存数据保存对象类型
     * @details 用于标识事务处理中的缓存数据保存对象类型ID。
     */
    EOT_CACHE_DATA_SAVE_TRANS_OBJ,

    /**
     * @brief 传输缓存数据对象类型
     * @details 事务处理中的缓存数据对象类型ID
     */
    EOT_TRANS_GET_CACHE_DATA_BASE_OBJ,

    /**
     * @brief 缓存数据对象管理器类型
     * @details 缓存数据对象管理器的类型ID
     */
    EOT_CACHE_DATA_OBJ_MGR,

    /**
     * @brief 缓存数据对象类型（带保存到数据库功能）
     *
     * 此枚举值用于标识支持保存到数据库功能的缓存数据对象类型。
     * 该类型对象在事务处理中可以直接与数据库交互，完成数据的持久化操作。
     *
     * @note 使用场景：
     *       - 需要将缓存数据同步到数据库时
     *       - 事务处理需要持久化缓存数据时
     *
     * @warning 确保对象类型唯一，避免与其他类型冲突。
     */
    EOT_CACHE_DATA_OBJ_WITH_SAVE_DB,
	EOT_SF_END_ID = EOT_SERVER_FRAME_END_ID,
} EN_SERVERFRAME_SHMOBJ_TYPE;